package com.shux.springsource.depends.on;

import java.io.IOException;

/**
 * 描述：depends-on的作用一般是一个bean依赖于另外一个bean，被依赖的bean一般用于一些初始化和收尾的工作
 * 如在这个例子中，DependentBean依赖于ResourceBean，
 * ResourceBean主要用于指定文件路径、打开文件、和关闭文件流
 * 而DependentBean只负责写文件，这样更能体现单一职责
 * 另外需要关注两个bean的init和destory的执行顺序
 * 先执行被依赖bean的init方法，然后执行依赖bean的方法
 * 先执行依赖bean的destory方法，后执行被依赖bean的destory方法
 * 
 * <pre>HISTORY
 * ****************************************************************************
 *  ID   DATE           PERSON          REASON
 *  1    2018年1月17日      Simba.Hua         Create
 * ****************************************************************************
 * </pre>
 * @author Simba.Hua
 */
public class DependentBean {
	private ResourceBean resourceBean;
	
	public void write(String str) throws IOException {
		System.out.println("DependentBean写资源" + str);
		resourceBean.getFos().write(str.getBytes());
	}
	public void init() throws IOException {
		System.out.println("DependentBean:初始化");
		resourceBean.getFos().write("DependentBean:初始化\r\n".getBytes());
	}
	public void destroy() throws IOException {
		System.out.println("DependentBean：销毁资源");
		resourceBean.getFos().write("DependentBean:销毁资源\r\n".getBytes());
	}
	public ResourceBean getResourceBean() {
		return resourceBean;
	}
	public void setResourceBean(ResourceBean resourceBean) {
		this.resourceBean = resourceBean;
	}
	
}
